JavaScript设计模式 高清pdf
第一部分面向对象的JavaScript第1章富有表现力的JavaScript1.1JavaScript的灵活性1.2弱类型语言1.3函数是一等对象1.4对象的易变性1.5继承1.6JavaScript中的设计模式1.7小结第2章接口2.1什么是接口2.1.1接口之利2.1.2接口之弊2.2其他面向对象语言处理接口的方式2.3在JavaScript中模仿接口2.3.1用注释描述接口2.3.2用属性检查模仿接口2.3.3用鸭式辨型模仿接口2.4本书采用的接口实现方法2.5Interface类2.5.1Interface类的使用场合2.5.2Interface类的用法2.5.3示例:使用Interface类2.6依赖于接口的设计模式2.7小结第3章封装和信息隐藏3.1信息隐藏原则3.1.1封装与信息隐藏3.1.2接口扮演的角色3.2创建对象的基本模式3.2.1门户大开型对象3.2.2用命名规范区别私用成员3.2.3作用域、嵌套函数和闭包3.2.4用闭包实现私用成员3.3更多高级对象创建模式3.3.1静态方法和属性3.3.2常量3.3.3单体和对象工厂3.4封装之利3.5封装之弊3.6小结第4章继承4.1为什么需要继承4.2类式继承4.2.1原型链4.2.2extend函数4.3原型式继承4.3.1对继承而来的成员的读和写的不对等性4.3.2clone函数4.4类式继承和原型式继承的对比4.5继承与封装4.6掺元类4.7示例:就地编辑4.7.1类式继承解决方案4.7.2原型式继承解决方案4.7.3掺元类解决方案4.8继承的适用场合4.9小结第5章单体模式5.1单体的基本结构5.2划分命名空间5.3用作特定网页专用代码的包装器的单体5.4拥有私用成员的单体5.4.1使用下划线表示法5.4.2使用闭包5.4.3两种技术的比较5.5惰性实例化5.6分支5.7示例:用分支技术创建XHR对象5.8单体模式的适用场合5.9单体模式之利5.10单体模式之弊5.11小结第6章方法的链式调用6.1调用链的结构6.2设计一个支持方法链式调用的JavaScript库6.3使用回调从支持链式调用的方法获取数据6.4小结第二部分设计模式第7章工厂模式7.1简单工厂7.2工厂模式7.3工厂模式的适用场合7.3.1动态实现7.3.2节省设置开销7.3.3用许多小型对象组成一个大对象7.4示例:XHR工厂7.4.1专用型连接对象7.4.2在运行时选择连接对象7.5示例:RSS阅读器7.6工厂模式之利7.7工厂模式之弊7.8小结第8章桥接模式8.1示例:事件监听器8.2桥接模式的其他例子8.3用桥接模式联结多个类8.4示例:构建XHR连接队列8.4.1添加核心工具8.4.2添加观察者系统8.4.3开发队列的基本框架8.4.4实现队列8.4.5哪些地方用了桥接模式8.5桥接模式的适用场合8.6桥接模式之利8.7桥接模式之弊8.8小结第9章组合模式9.1组合对象的结构9.2使用组合模式9.3示例:表单验证9.3.1汇合起来9.3.2向FormItem添加操作9.3.3向层次体系中添加类9.3.4添加更多操作9.4示例:图片库9.5组合模式之利9.6组合模式之弊9.7小结第10章门面模式10.1一些你可能已经知道的门面元素10.2JavaScript库的门面性质10.3用作便利方法的门面元素10.4示例:设置HTML元素的样式10.5示例:设计一个事件工具10.6实现门面模式的一般步骤10.7门面模式的适用场合10.8门面模式之利10.9门面模式之弊10.10小结第11章适配器模式11.1适配器的特点11.2适配原有实现11.3示例:适配两个库11.4示例:适配电子邮件API11.4.1用适配器包装Web邮件API11.4.2从fooMail转向dedMail11.5适配器模式的适用场合11.6适配器模式之利11.7适配器模式之弊11.8小结第12章装饰者模式12.1装饰者的结构12.1.1接口在装饰者模式中的角色12.1.2装饰者模式与组合模式的比较12.2装饰者修改其组件的方式12.2.1在方法之后添加行为12.2.2在方法之前添加行为12.2.3替换方法12.2.4添加新方法12.3工厂的角色12.4函数装饰者12.5装饰者模式的适用场合12.6示例:方法性能分析器12.7装饰者模式之利12.8装饰者模式之弊12.9小结第13章享元模式13.1享元的结构13.2示例:汽车登记13.2.1内在状态和外在状态13.2.2用工厂进行实例化13.2.3封装在管理器中的外在状态13.3管理外在状态13.4示例:Web日历13.4.1把日期对象转化为享元13.4.2外在数据保存在哪里13.5示例:工具提示对象13.5.1未经优化的Tooltip类13.5.2作为享元的Tooltip13.6保存实例供以后重用13.7享元模式的适用场合13.8实现享元模式的一般步骤13.9享元模式之利13.10享元模式之弊13.11小结第14章代理模式14.1代理的结构14.1.1代理如何控制对本体的访问14.1.2虚拟代理、远程代理和保护代理14.1.3代理模式与装饰者模式的比较14.2代理模式的适用场合14.3示例:网页统计14.4包装Web服务的通用模式14.5示例:目录查找14.6创建虚拟代理的通用模式14.7代理模式之利14.8代理模式之弊14.9小结第15章观察者模式15.1示例:报纸的投送15.1.1推与拉的比较15.1.2模式的实践15.2构建观察者API15.2.1投送方法15.2.2订阅方法15.2.3退订方法15.3现实生活中的观察者15.4示例:动画15.5事件监听器也是观察者15.6观察者模式的适用场合15.7观察者模式之利15.8观察者模式之弊15.9小结第16章命令模式16.1命令的结构16.1.1用闭包创建命令对象16.1.2客户、调用者和接收者16.1.3在命令模式中使用接口16.2命令对象的类型16.3示例:菜单项16.3.1菜单组合对象16.3.2命令类16.3.3汇合起来16.3.4添加更多菜单项16.4示例:取消操作和命令日志16.4.1使用命令日志实现不可逆操作的取消16.4.2用于崩溃恢复的命令日志16.5命令模式的适用场合16.6命令模式之利16.7命令模式之弊16.8小结第17章职责链模式17.1职责链的结构17.2传递请求17.3在现有层次体系中实现职责链17.4事件委托17.5职责链模式的适用场合17.6图片库的进一步讨论17.6.1用职责链提高组合对象的效率17.6.2为图片添加标签17.7职责链模式之利17.8职责链模式之弊17.9小结
评论